//阚子路、张译文
#include "energystorage.h"
#include "ui_energystorage.h"
#include "Code/Component/ComponentParam.h"

EnergyStorage::EnergyStorage(QWidget *parent)
    : QDialog(parent)
    , ui(new Ui::EnergyStorage)
{
    ui->setupUi(this);
    setWindowTitle("储能属性"); // 设置窗口标题（对应储能组件）
}

EnergyStorage::~EnergyStorage()
{
    delete ui;
}

// 获取储能功率（从UI的powerEdit控件读取并转换为double）
double EnergyStorage::getPower() const
{
    return ui->powerEdit->text().toDouble();
}


// 确定按钮：关闭对话框并返回成功状态
void EnergyStorage::on_confirmBtn_clicked()
{
    accept(); // 关闭对话框，返回QDialog::Accepted
}

// 取消按钮：关闭对话框并返回失败状态
void EnergyStorage::on_cancelBtn_clicked()
{
    reject(); // 关闭对话框，返回QDialog::Rejected
}

// 按钮盒确认按钮（提交储能参数更新）
void EnergyStorage::on_buttonBox_accepted()
{
    ComponentParam param;
    param.id = 2; // 储能的唯一标识ID（与柴油发电机id=3区分，按约定设置）
    param.type = "储能"; // 组件类型（明确为储能）
    param.currentPower = this->getPower(); // 读取界面输入的储能功率

    // （可选）若需添加效率参数，可扩展ComponentParam类后补充：
    // param.efficiency = this->getEfficiency();

    emit paramsUpdated(param); // 发射信号，传递更新后的储能参数
    accept(); // 关闭对话框

    // 调试输出，验证参数传递（与柴油发电机调试格式一致）
    qDebug() << "emit paramsUpdated(param) [储能]";
    qDebug() << "id=" << param.id << ", type=" << param.type << ", currentPower=" << param.currentPower;
}
